﻿using Pay.DTO;
using Pay.TO;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Pay.IService {
    public interface IMarketingCommonService {
        /// <summary>
        /// 根据商户Id获得其市级分公司
        /// </summary>
        /// <param name="merchantId"></param>
        /// <param name="isParentCity">如果当前公司是市级分公司，是否返回其父级分公司（系统默认市级公司），false则返回自身</param>
        /// <returns></returns>
        merchant_dto GetCityCompanyMerchantByMerchantId(long merchantId, bool isParentCity = false);
        /// <summary>
        /// 获取我的直接下级
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="isDefautMerchantShowALL">系统默认账号是否显示Token所有商户</param>
        /// <param name="isFilterUserType">是否过滤用户角色（大于等于创客）</param>
        /// <returns></returns>
        List<marketing_user_child_model> GetMyDirectChildList(long userId, bool isDefautMerchantShowALL = true, bool isFilterUserType = false);
        /// <summary>
        /// 获取我的所有下级
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="isFilterUserType">是否过滤用户角色（大于等于创客）</param>
        /// <returns></returns>
        List<marketing_user_child_model> GetMyAllChildList(long userId, bool isFilterUserType = false);
        /// <summary>
        /// 获取我的下级（我的市分公司下级，排除其的子级）
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="isFilterUserType">是否过滤用户角色（大于等于创客）</param>
        /// <returns></returns>
        List<marketing_user_child_model> GetMyChidListNoHasCityChilds(long userId, bool isFilterUserType = false);
    }
}
